home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 1992 August / info-mac-1992.iso / Language (lang) / Lazy-Scheme / Examples / Church numbers next >
Encoding:
Text File  |  1992-03-05  |  804 b   |  42 lines  |  [TEXT/Help]

  1. {Lambda calculus in help: The church numbers}
  2.  
  3.  
  4. (define plus 
  5.   (lambda(n1)
  6.          (lambda(n2)
  7.                 (lambda(f)
  8.                        (lambda(x)
  9.                               ((n1 f) ((n2 f) x)))))))
  10.  
  11. (define zero (lambda(f) (lambda(x) x)))
  12.  
  13. (define mul
  14.   (lambda(n1)
  15.          (lambda(n2)
  16.                 (lambda(f)
  17.                        (lambda(x)
  18.                               ((n1 (n2 f)) x))))))
  19.  
  20. (define suc 
  21.   (lambda(n)
  22.          (lambda(f)
  23.                 (lambda(x) ((n f)(f x))))))
  24.  
  25. (define un (suc zero))
  26.  
  27. (define deux (suc un))
  28.  
  29. (define trois (suc deux))
  30.  
  31. (define quatre ((mul deux)deux))
  32.  
  33. (define exp
  34.   (lambda(n1)
  35.          (lambda(n2)
  36.                 (lambda(f)
  37.                        (lambda(x)
  38.                               (((n2 n1) f) x))))))
  39.  
  40. ((((exp deux) trois) 1+ )0)
  41.  
  42.